DEFINITION MODULE Terminal;
(* Direct to the terminal I/O for performance. *)


(*
*    Copyright (c) 1985,1986,1987,1988,1989 by
*    ana-systems, Foster City, California.
*    All Rights Reserved.
*
*    This software is furnished under a license and may be used and copied
*    only  in accordance with  the  terms  of  such  license and  with the
*    inclusion of the above copyright notice.  This software or  any other
*    copies thereof may not be provided or otherwise made available to any
*    other  person.   No title to and ownership of the  software is  herby
*    transferred.
*
*    The information in this software is  subject to change without notice
*    and  should  not be construed as a commitment by ana-systems.   No
*    warranty is implied or expressed.
*
*   SCCID  = "1.2    10/8/86"; 
*)
EXPORT QUALIFIED
        ReadChar,       ReadString,     CondRead, Read,
        WriteChar,      WriteString,    WriteLn, Write,
        WriteErrorString, ReadLn,       EOL;

(* Following routines not yet implemented.
   They need to be clearly defined as they are very hardware dependant.

        NumRows,        NumCols,        GotoRowCol,
        EraseScreen,    EraseToEOL,     EraseToEOS;
*)

PROCEDURE ReadChar    ( VAR      ch : CHAR );      (* Read with echo *)

PROCEDURE Read        ( VAR      ch : CHAR );      (* Read with echo *)

PROCEDURE ReadLn;

PROCEDURE ReadString  ( VAR     str : ARRAY OF CHAR ); (* until EOL or EOS *)

PROCEDURE CondRead    ( VAR      ch : CHAR;        (* Read next char, no wait *)
                        VAR success : BOOLEAN );   (* false if no char avail. *)

PROCEDURE WriteChar   ( ch  : CHAR );

PROCEDURE Write   ( ch  : CHAR );

PROCEDURE WriteString ( VAR str : ARRAY OF CHAR );

PROCEDURE WriteLn;                                  (* writln  (from Pascal) *)

PROCEDURE WriteErrorString ( VAR str : ARRAY OF CHAR ); (* Write errors *)
 
PROCEDURE EOL() : BOOLEAN;

END Terminal.
